package com.pond.pond.domain.dto;

import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 创建订单请求
 */
@Getter
@Setter
public class CreateOrderRequest {
    
    /** 用户类型（new-散客，existing-老客户） */
    @NotNull(message = "用户类型不能为空")
    private String userType;
    
    /** 用户ID（老客户时必填） */
    private Long userId;
    
    /** 用户姓名（散客时可选） */
    private String userName;
    
    /** 用户手机号（散客时必填） */
    private String userPhone;
    
    /** 钓场ID */
    @NotNull(message = "钓场ID不能为空")
    private Long deptId;
    
    /** 鱼塘ID */
    private Long pondId;
    
    /** 钓位ID */
    private Long seatId;
    
    /** 开始时间 */
    private String startTime;
    
    /** 预约时间段ID（情况1：预约签到后创建订单时需要） */
    private Long appointmentSegmentId;
    
    /** 订单项列表 */
    private List<OrderItemRequest> orderItems;
    
    /** 备注 */
    private String remark;
    
    /**
     * 订单项请求
     */
    @Getter
    @Setter
    public static class OrderItemRequest {
        /** 订单ID */
        private Long orderId;
        
        /** 项目类型（fee-钓费，shop-商店） */
        @NotNull(message = "项目类型不能为空")
        private String itemType;
        
        /** 项目名称 */
        @NotNull(message = "项目名称不能为空")
        private String itemName;
        
        /** 消费金额 */
        @NotNull(message = "消费金额不能为空")
        private Double amount;
        
        /** 支付方式（1-微信，2-支付宝，3-现金等） */
        private Integer payType;
        
        /** 支付状态（0-未支付，1-已支付） */
        private Integer payStatus = 0;
    }
}